//
// Created by Key-Box-Min on 21/07/2020.
//

#ifndef CRUDP_TOOLS_H
#define CRUDP_TOOLS_H

#include "../lib/Container/ThreadContainer.h"
#include "../lib/Base/EventSystem/SignalEventDrivers.h"
#include "../lib/Tools.h"

using namespace Lib;

namespace NetBaseCommon{

    struct Option{
        uint16_t __init_send_wnd_size = 6;
        uint32_t __defaule_pacing_rate = 0xFFFF;
        uint8_t  __max_send_count = 3;

        uint8_t __max_frame_index  = UINT8_MAX;
        uint8_t __min_frame_index  = 1;
        uint8_t __default_rul_index = 0;

        uint32_t __cmd_buffer_size = UINT32_MAX;
        uint64_t __max_send_buffer_size = UINT64_MAX;
        uint64_t __max_recv_buffer_size = UINT64_MAX;

        std::chrono::microseconds __send_timeout = std::chrono::milliseconds(10);
        std::chrono::microseconds __recv_max_time = std::chrono::seconds(3);

        std::chrono::microseconds __recv_interval_time = std::chrono::milliseconds(1);
        std::chrono::microseconds __recv_time = std::chrono::milliseconds(100);
    };
}

#endif //COMPILERDOMEA1_TOOLS_H
